package com.cll.controller.admin;

import com.cll.constant.MessageConstant;
import com.cll.result.Result;
import com.cll.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.UUID;

@RestController
@Slf4j
@RequestMapping("/admin/common")
public class CommonController {

    @Autowired
    private AliOssUtil aliOssUtil;

    @PostMapping("/upload")
    public Result upload(MultipartFile file){
        log.info("开始上传文件：{}",file);

        try {
            //获取扩展名
            String originalFilename = file.getOriginalFilename();
            //截取扩展名.jpg
            String extension = originalFilename.substring(originalFilename.lastIndexOf("."));
            //生成文件名(定义唯一文件名)
            String objectName = UUID.randomUUID().toString()+extension;

            //上传
            String filePath = aliOssUtil.upload(file.getBytes(), objectName);
            //返回数据
            return Result.success(filePath);
        } catch (IOException e) {
           log.error("文件上传失败：{}",e);
        }
        return Result.error(MessageConstant.UPLOAD_FAILED);
    }
//
//    /**
//     * 实现储存在本地磁盘  会临时储存在一个位置,当保存到指定的磁盘后,就会自动删除临时储存的
//     * @param file
//     * @return
//     * @throws IOException
//     */
//    @PostMapping("/upload")
//    public Result upload2(MultipartFile file) throws IOException {
//        //1.生成唯一文件名字 = uuid+jpg
//        //获取元素文件名 xxx.jpg
//        String originalFilename = file.getOriginalFilename();
//
//        //截取扩展名.jpg
//        String name = originalFilename.substring(originalFilename.lastIndexOf("."));
//
//        //定义唯一文件名
//        String fileName = UUID.randomUUID() + name;
//        //2.保存在磁盘
//        file.transferTo(new File("D:\\img\\" + fileName));
//        //3.返回成功
//        return Result.success();
//    }
}
